252 文字
1 分
Q. go mod tidyしたらruntime error: invalid memory address or nil pointer dereference
状況
あるプロジェクトでgo mod tidy
を実行したら、以下のようなエラーが発生した。
go: added github.com/pkg/errors v0.9.1panic: runtime error: invalid memory address or nil pointer dereference [recovered] panic: runtime error: invalid memory address or nil pointer dereference[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x5983af]
goroutine 97 [running]:go/types.(*Checker).handleBailout(0xc0004ce600, 0xc00127fbd0) /usr/local/go/src/go/types/check.go:367 +0x88...exit status 2
調査
エラーを見ると、golang.org/x/tools
に原因があると推測できる。
実際に調べると、関連していそうな Issue がいくつか見つかった。
- https://github.com/golang/go/issues/62167
- https://github.com/golang/go/issues/64812
- https://github.com/golang/go/issues/61035
これらの問題は既に修正されているが、そもそもよく見るとインストールされているgolang.org/x/tools
のバージョンが古いv0.6.0
と分かる。
原因
go mod tidy
によって、そのプロジェクトで直接利用されていないgolang.org/x/tools
が削除され、また利用している内製ライブラリの 1 つが保守されておらず古いgolang.org/x/tools
のv0.6.0
を利用していたことで、このエラーが発生するようになった。
ちゃんと保守しよう。
Q. go mod tidyしたらruntime error: invalid memory address or nil pointer dereference
https://blog.ohirunewani.com/posts/"go-mod-tidy-runtime-error-invalid-memory-address-or-nil-pointer-dereference"/